# import datetime
#
# date1 = datetime.datetime(year=2004, month=9, day=1)
# date2 = datetime.datetime(year=2025, month=6, day=13)
# print(date2 - date1)
import datetime
import os

import xlrd


# from datetime import datetime
# date1 = datetime(year=2004, month=9, day=1)
# date2 = datetime(2025, 6, 13)
# print(date2 - date1)

# import datetime as dt
# date1 = dt.datetime(2004, 9, 1)
# date2 = dt.datetime(2025, 6, 13)
# print(date2 - date1)


# 翻转单词顺序
# def reverseMessage(message):
#     """
#     :type message: str
#     :rtype: str
#     """
#     tokens = message.split()
#     tokens.reverse()
#     return ' '.join(tokens)


# 旋转字符串
# def rotateString(s, goal):
#     if len(s) != len(goal):
#         return False
#     return goal in s + s
#
#
# print(rotateString("abcde", "cdeab"))


# 统计是给定字符串前缀的字符串数目
# def countPrefixes(words, s):
#     """
#     :type words: List[str]
#     :type s: str
#     :rtype: int
#     """
#     count = 0
#     for word in words:
#         # startswith判断当前字符串word是不是s的前缀
#         if s.startswith(word):
#             count += 1
#     return count


# 文件查找工具
# 指定一个待搜索路径, 同时指定一个待搜索的关键字.
# 在待搜索路径中查找是否文件名中包含这个关键字.
# inputPath = input("请输入您要搜索的路径: ")
# pattern = input("请输入您要查找的关键词: ")
# # for dirPath, dirNames, fileNames in os.walk(inputPath):
# #     for f in fileNames:
# #         if pattern in f:
# #             print(f"{dirPath}/{f}")
# for dirPath, _, fileNames in os.walk(inputPath):
#     for f in fileNames:
#         if pattern in f:
#             print(f"{dirPath}/{f}")


# 生成二维码
# import qrcode
# img = qrcode.make("https://www.yuque.com/u54397996/dtegaq/akci3p797m7x87ai?singleDoc# 《博客系统的UI界面自动化测试报告》")
# print(type(img))
# img.save("report.png")
# img = qrcode.make("https://www.yuque.com/u54397996/dtegaq/wle61bc34mrxzvnv?singleDoc# 《问答集市UI界面自动化测试报告》")
# img.save("report2.png")

# # 操作Excel
# # 1.打开xlsx文件
# xlsx = xlrd.open_workbook("f:/homework/computer/Java/student.xlsx")
# # 2.获取0号页标签页
# table = xlsx.sheet_by_index(0)
# # 3.获取总行数
# rows = table.nrows
# # 4.遍历数据
# total = 0
# count = 0
# for i in range(1, rows):
#     # 使用table.cell_value(row, col)获取到指定坐标单元格的值,0开始
#     classId = table.cell_value(i, 1)
#     if classId == 100:
#         total += table.cell_value(i, 2)
#         count += 1
# print(f"平均分: {total / count}")



# 程序员鼓励师
from pynput import keyboard
import random
from playsound import playsound
from threading import Thread

soundList = ['sound1.mp3', 'sound2.mp3', 'sound3.mp3']

# 记录当前用户按键按了几次
count = 0


def onRelease(key):
    """
       这个函数, 就是在用户释放键盘按键的时候, 就会被调用到.
       这个函数不是咱们自己主动调用的, 而是把这个函数交给了 Listener ,
       由 Listener 在用户释放按键的时候自动调用.
       像这样的不是咱们自己主动调用, 而是交给别人, 在合适的时机进行调用, 这样的函数, 叫做 "回调函数" (callback function)
       :param key: 用户按下了哪个键
       """
    print(key)
    global count
    count += 1
    if count % 20 == 0:
        # 播放音频!
        # 生成随机数
        i = random.randint(0, len(soundList) - 1)
        # playsound(soundList[i])
        # 此处的播放音频, 消耗时间比较多, 可能会引起输入的卡顿(不流畅)
        # 可以创建一个线程, 在线程里播放音频!!
        t = Thread(target=playsound, args=(soundList(i), ))
        t.start()


# 当我们创建好 Listener 之后, 用户的键盘按键动作就会被捕获到.
# 还希望在捕获到之后能够执行一段代码.
listener = keyboard.Listener(on_release=onRelease)
listener.start()
listener.join()


# 编写一段代码, 感受一下这个程序的效果
# 播放音频可能出现卡顿
# 再次感受下代码的效果, 此时感觉就流畅了吧, 现在就非常流畅了~~~
# 现在是把频率降低到 20 下播放一次, 感觉是不是好点啦?
